package Vista;

import java.util.ArrayList;

import javax.swing.table.AbstractTableModel;

import Modelo.Competencia;
import Modelo.Equipos;
import Modelo.Nadadores;
import Modelo.Panamericano;

public class VentanaCalendarioModeloTabla extends AbstractTableModel{

	private static String[] titulos = {"Codigo", "Fecha", "Hora", "Fase", "Estilo", "Juez"}; //, "1er Lugar", "2do Lugar", "3er Lugar"};
	private ArrayList<Competencia> arregloCompetencias;
	private Panamericano pana;
	private ArrayList<String> pais;
	
	
	public VentanaCalendarioModeloTabla(ArrayList<Competencia> competencia, Panamericano panamer) {//, ArrayList<String> pais) {
		super();
		this.arregloCompetencias = competencia;
		this.pana = panamer;
		this.pais = pais;
	}
	@Override
	public int getColumnCount() {
		// TODO Auto-generated method stub
		return titulos.length;
	}
	@Override
	public int getRowCount() {
		return arregloCompetencias.size();
		
	}
	@Override
	public Object getValueAt(int rowIndex, int columnIndex) {
		// TODO Auto-generated method stub
		Competencia competencia = this.arregloCompetencias.get(rowIndex);
		//String [] posiPais = obtenerPais(competencia.getPosiciones());
		ArrayList<Nadadores> nadadores = new ArrayList<Nadadores>();
		
		switch (columnIndex){
			case 0: return competencia.getCodCompetencia();
			case 1: return competencia.getFecha();
			case 2: return competencia.getHora();
			case 3: return competencia.getFase();
			case 4: return competencia.getModalidad();
			case 5: return competencia.getJuez().getNombre()+" "+competencia.getJuez().getApellido();
			/*case 6: 
				for(int i = 0; i < pana.getEquipo().size(); i++) {
					nadadores = pana.getEquipo().get(i).getNadadores();
					for(int p = 0; p < nadadores.size(); p++) {
						if(competencia.getPosiciones().get(0).equals(nadadores.get(p).getCedula())) {
							return pana.getEquipo().get(i).getPais();
						}
					}
					
				}
				//return this.pais.get(rowIndex);
			case 7: 
				for(int i = 0; i < pana.getEquipo().size(); i++) {
					nadadores = pana.getEquipo().get(i).getNadadores();
					for(int p = 0; p < nadadores.size(); p++) {
						if(competencia.getPosiciones().get(1).equals(nadadores.get(p).getCedula())) {
							return pana.getEquipo().get(i).getPais();
						}
					}
					
				}
				//return this.pais.get(rowIndex);
			case 8: 
				for(int i = 0; i < pana.getEquipo().size(); i++) {
					nadadores = pana.getEquipo().get(i).getNadadores();
					for(int p = 0; p < nadadores.size(); p++) {
						if(competencia.getPosiciones().get(2).equals(nadadores.get(p).getCedula())) {
							return pana.getEquipo().get(i).getPais();
						}
					}
					
				}
				//return this.pais.get(rowIndex);*/
		}
		return null;
	}
	
	
	@Override
	public String getColumnName(int column) {
		return titulos[column];
	}
	
	
	private String[] obtenerPais(ArrayList<Nadadores> posiciones){
		
		String[] arregloPos = new String[3];
		ArrayList<Nadadores> nadadores = new ArrayList<Nadadores>();
		
		for(int n = 0; n < 3; n++) {
			for(int i = 0; i < pana.getEquipo().size(); i++) {
				nadadores = pana.getEquipo().get(i).getNadadores();
				for(int p = 0; p < nadadores.size(); p++) {
					if(posiciones.get(n).equals(nadadores.get(p).getCedula())) {
						arregloPos[n] = pana.getEquipo().get(i).getPais();
					}
				}
				
			}
		}
		return arregloPos;
	}
}
